Conventionally, since extensive calculations are to be executed for numerical computations in the field of science and technology, efficient performance of the same is required. To this end, in general, it is necessary to revise a source program dedicated to a high speed machine environment necessary. Especially when execution is carried out by computer hardware equipped with vector processing architecture and by vector operating DO loops which require a high computing overhead, high speed processing is necessary to allow efficient execution to be achieved. When such vector processing is carried out, a compiler may generate an object program by optimizing the source program so that the vector processing may become possible. However, conventionally, for the program which cannot be optimized by the compiler, it has been necessary to edit and output static information regarding program characteristics, such as a referencing relationship between subroutines or a condition in which variables are referenced, or the like, and dynamic characteristics (number of referencing times and running time per unit of program, running time of each subprogram statement, or the like) by utilizing a tool for collecting program running characteristics, which is available in the operating system, so as to revise them into a coding system which may be optimized by the compiler.
FIG. 1 is a diagram illustrating a specific example in which a conventional complier cannot vector the DO loop and, for example, if, as shown in FIG. 1, an array subscript IJK for arrays WK, A, B and C in an arithmetic operating means is invoked by using a list vector IL, then the compiler cannot optimize vector processing because, after it interprets the statement, it cannot determine whether the definition referencing relationships are matched or not.
Further, FIG. 2 is a diagram illustrating a conventional example in which the compiler cannot vector the DO loop because there is a CALL statement within the loop and, even when the CALL statement is present within the DO loop, as shown in FIG. 2, the compiler cannot optimize vector processing for that DO loop.
In such conditions as in FIGS. 1 and 2, when a programmer revises the coding by using the tool for collecting the program running characteristics, which is available in the operating system, he looks for the points of the source program considered possible for the compiler to optimize for vectoring, and manually revises them. As a consequence, a great number of man days are necessary in order to make the DO loop perform vector processing to increase program execution speed.